[求助] 关于finally的问题

来源:百度知道 编辑:UC知道 时间:2024/05/29 11:07:35
比如有这样一段代码:

try {
A;
B;
} catch (Exception e) { }
finally {C;}

假如运行A的时候出现了异常C会被运行,那么把finally去掉,依然会执行C,finally有什么作用?

try {
A;
B;
} catch (Exception e) { }
C;

try {
A;
B;
如果在这里有个return;如果没有finally的话就可能执行不了C了
} catch (Exception e) { }
finally {C;}

finally是不管什么样的情况都会执行它后面的代码块的,return的话也会执行的,除非上面代码快遇到
System.exit(0),才会直接退出,不执行finally的语句

去掉finally以后当出现异常以后进入 catch 块,然后就会跳出方法。不执行C。

比如说在执行sql语句的时候,当出现运行时异常你又希望程序终止不在往下执行的时候,就需要这样写
try {
A;
B;
} catch (Exception e) {
return;
}
但是跟数据库的链接必须断开,因为过多的链接会让服务器死掉! 所以就需要用finally,它是必须执行的,不管有没有异常都会!